home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume7 / spider / patch1 < prev    next >
Encoding:
Internet Message Format  |  1990-05-01  |  30.3 KB

  1. Path: uunet!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!brutus.cs.uiuc.edu!apple!vsi1!ubvax!weitek!amdcad.amd.com!sun!kimba
  2. From: hvr@kimba (Heather Rose)
  3. Newsgroups: comp.sources.x
  4. Subject: v07i013: Spider, Patch1, Part01/01
  5. Message-ID: <135056@sun.Eng.Sun.COM>
  6. Date: 1 May 90 06:36:18 GMT
  7. Sender: news@sun.Eng.Sun.COM
  8. Lines: 1312
  9. Approved: argv@sun.com
  10.  
  11. Submitted-by: hvr@kimba (Heather Rose)
  12. Posting-number: Volume 7, Issue 13
  13. Archive-name: spider/patch1
  14.  
  15. #! /bin/sh
  16. # This is a shell archive, meaning:
  17. # 1. Remove everything above the #! /bin/sh line.
  18. # 2. Save the resulting text in a file.
  19. # 3. Execute the file with /bin/sh (not csh) to create:
  20. #    patchlevel.h
  21. #    changed.out
  22. #    patch.out
  23. # This archive created: Mon Apr 30 20:18:19 1990
  24. export PATH; PATH=/bin:/usr/bin:$PATH
  25. echo "#define PATCHLEVEL 1" > patchlevel.h
  26. if test -f 'changed.out'
  27. then
  28.     echo shar: "will not over-write existing file 'changed.out'"
  29. else
  30. cat << \SHAR_EOF > 'changed.out'
  31. ./Imakefile
  32. ./doc.rules
  33. ./util.c
  34. ./version.c
  35. ./xaw_ui.h
  36. ./defs.h
  37. ./events.c
  38. ./xaw_stubs.c
  39. ./README
  40. ./xaw_ui.c
  41. ./xv_ui.c
  42. ./xv_stubs.c
  43. ./gfx.c
  44. ./spider.info
  45. SHAR_EOF
  46. fi
  47. if test -f 'patch.out'
  48. then
  49.     echo shar: "will not over-write existing file 'patch.out'"
  50. else
  51. cat << \SHAR_EOF > 'patch.out'
  52. *** /tmp/spider/./Imakefile    Mon Apr 30 19:55:41 1990
  53. --- ./Imakefile    Mon Apr 30 20:00:25 1990
  54. ***************
  55. *** 2,19 ****
  56.   /**/# This is an R4 style Imakefile, so will need the R4 config files to
  57.   /**/# to make a Makefile.  It also assume that X11 is installed in /usr/lib.
  58.   
  59. !     SHAR = shar -a
  60. !     RM = rm -f
  61. !     COMPRESS = compress
  62. !     BTOA = btoa
  63. !     SPLIT = split
  64. !     CC = cc
  65. !     CAT = cat
  66. !     HELPDIR = .
  67.   
  68. ! /***** Note:  only need XViewNeedsOlgx when using XView 2.0 or greater *****/
  69.   #ifndef XViewNeedsOlgx
  70. ! #define XViewNeedsOlgx YES
  71.   #endif
  72.   
  73.   /***** Note:  cannot have CompileXlibOnly, CompileXView, and CompileXAW 
  74. --- 2,54 ----
  75.   /**/# This is an R4 style Imakefile, so will need the R4 config files to
  76.   /**/# to make a Makefile.  It also assume that X11 is installed in /usr/lib.
  77.   
  78. !         SHAR = shar -a
  79. !         COMPRESS = compress
  80. !         BTOA = btoa
  81. !         SPLIT = split
  82. !         CAT = cat
  83. ! /***** Note: probably want to define this to be something else *****/
  84. !         HELPDIR = help
  85.   
  86. ! /***** Note:  Used to over-ride some declarations in the default Imakefile
  87. !               configurations.  If you want to use some of these things, then
  88. !               set OverrideDefs to YES below and change the corresponding
  89. !               definitions to what you would like them to be below.  Delete
  90. !               or comment out those you do not wish to use  *****/
  91. ! #ifndef OverrideDefs
  92. ! #define OverrideDefs NO
  93. ! #endif
  94. ! #if OverrideDefs
  95. ! # ifdef ManSuffix
  96. ! #  undef ManSuffix
  97. ! #  define ManSuffix 1
  98. ! # else
  99. ! #  define ManSuffix 1
  100. ! # endif
  101. !         MANSUFFIX = ManSuffix
  102. !         MANDIR = ./man$(MANSUFFIX)
  103. !         BINDIR = ./bin
  104. !         MKDIRHIER = /usr/bin/X11/mkdirhier
  105. ! #endif /* OverrideDefs */
  106. ! /***** Note:  if your OS or libc does not have usleep defined, set this
  107. !               to YES.  (SunOS is one that does have usleep in libc) *****/
  108. ! #ifndef NeedsLocalUsleep
  109. ! #define NeedsLocalUsleep NO
  110. ! #endif
  111. ! /***** Note:  if your OS or libc does not have strdup defined, set this
  112. !               to YES.  (SunOS is one that does have strdup in libc) *****/
  113. ! #ifndef NeedsLocalStrdup
  114. ! #define NeedsLocalStrdup NO
  115. ! #endif
  116. ! /***** Note:  only need XViewHasOlgx when using XView 2.0 or greater *****/
  117.   #ifndef XViewNeedsOlgx
  118. ! #define XViewNeedsOlgx NO
  119.   #endif
  120.   
  121.   /***** Note:  cannot have CompileXlibOnly, CompileXView, and CompileXAW 
  122. ***************
  123. *** 58,98 ****
  124.   # endif
  125.   #endif
  126.   
  127.   /**/# If these are not defined in the site.def file, define them now.
  128.   /**/# set up compile time dependencies for XView clients.
  129. !     XVTOP = $(XVIEWHOME)
  130. !     XVLIBSRC = $(XVTOP)/lib
  131. ! #if UseInstalled
  132. !     DEPXVIEWLIB =
  133. !     DEPOLGXLIB =
  134. ! #else
  135. !     DEPXVIEWLIB = $(XVLIBSRC)/libxview.a
  136.   # if XViewNeedsOlgx
  137. !     DEPOLGXLIB = $(XVLIBSRC)/libolgx.a
  138.   # else
  139. !     DEPOLGXLIB =
  140.   # endif
  141. ! #endif
  142. !     XVIEWLIB = -L$(XVLIBSRC) -lxview
  143. ! #if XViewNeedsOlgx
  144. !     OLGXLIB = -L$(XVLIBSRC) -lolgx
  145. ! #else
  146. !     OLGXLIB =
  147. ! #endif
  148.   
  149. !     KL_DIST = main.c
  150.   #if CompileXlibOnly
  151.   # if RoundCards
  152. !     DEPLIBS = $(DEPXMULIB) $(DEPXLIB)
  153. !     LOCAL_LIBRARIES = $(XMULIB) $(XLIB)
  154.   # else
  155. !     DEPLIBS = $(DEPXLIB)
  156.           LOCAL_LIBRARIES = $(XLIB)
  157.   # endif
  158. -     SYSTEM_LIBRARIES =
  159. -     DEPEXTENSIONLIB =
  160. -         EXTENSIONLIB =
  161.           TKOBJS = main.o
  162.    
  163.           TKSRCS = main.c
  164. --- 93,131 ----
  165.   # endif
  166.   #endif
  167.   
  168. + #if CompileXView
  169.   /**/# If these are not defined in the site.def file, define them now.
  170.   /**/# set up compile time dependencies for XView clients.
  171. !         XVTOP = $(XVIEWHOME)
  172. !         XVLIBSRC = $(XVTOP)/lib
  173. ! # if UseInstalled
  174. !         DEPXVIEWLIB =
  175. !         DEPOLGXLIB =
  176. ! # else
  177. !         DEPXVIEWLIB = $(XVLIBSRC)/libxview.a
  178. ! #  if XViewNeedsOlgx
  179. !         DEPOLGXLIB = $(XVLIBSRC)/libolgx.a
  180. ! #  else
  181. !         DEPOLGXLIB =
  182. ! #  endif
  183. ! # endif
  184. !         XVIEWLIB = -L$(XVLIBSRC) -lxview
  185.   # if XViewNeedsOlgx
  186. !         OLGXLIB = -L$(XVLIBSRC) -lolgx
  187.   # else
  188. !         OLGXLIB =
  189.   # endif
  190. ! #endif /* CompileXView */
  191.   
  192. !         KL_DIST = main.c
  193.   #if CompileXlibOnly
  194.   # if RoundCards
  195. !         DEPLIBS = $(DEPXMULIB) $(DEPXLIB)
  196. !         LOCAL_LIBRARIES = $(XMULIB) $(XLIB)
  197.   # else
  198. !         DEPLIBS = $(DEPXLIB)
  199.           LOCAL_LIBRARIES = $(XLIB)
  200.   # endif
  201.           TKOBJS = main.o
  202.    
  203.           TKSRCS = main.c
  204. ***************
  205. *** 107,172 ****
  206.    
  207.           TKINCLUDES = 
  208.   
  209. !     TARGET = spider
  210. ! #endif
  211.   
  212. !     XVIEW_DIST = xv_ui.c xv_stubs.c xv_ui.h spider.info
  213.   #if CompileXView
  214.   # if RoundCards
  215. !     DEPLIBS = $(DEPXVIEWLIB) $(DEPOLGXLIB) $(DEPXMULIB) $(DEPXLIB)
  216. !     LOCAL_LIBRARIES = $(XVIEWLIB) $(OLGXLIB) $(XMULIB) $(XLIB)
  217.   # else
  218. !     DEPLIBS = $(DEPXVIEWLIB) $(DEPOLGXLIB) $(DEPXLIB)
  219. !     LOCAL_LIBRARIES = $(XVIEWLIB) $(OLGXLIB) $(XLIB)
  220.   # endif
  221. !     SYSTEM_LIBRARIES = 
  222. !     DEPEXTENSIONLIB =
  223. !     EXTENSIONLIB =
  224.   
  225. !     TKOBJS = xv_ui.o xv_stubs.o 
  226.   
  227. !     TKSRCS = xv_ui.c xv_stubs.c
  228.   
  229. !     TKHEADERS = xv_ui.h
  230.   
  231. !     TKBITMAPS = 
  232.   
  233. !     TKDOCS = spider.info 
  234.   
  235. !     TKDEFINES = -DXVIEW
  236.   
  237. !     TKINCLUDES = -I$(XVTOP)/include 
  238.   
  239. !     TARGET = spider
  240. ! #endif
  241. !     XAW_DIST = xaw_ui.c xaw_stubs.c xaw_ui.h
  242.   #if CompileXAW
  243.           DEPLIBS = $(DEPXAWLIB) $(DEPXTOOLLIB) $(DEPXMULIB) $(DEPXLIB)
  244.           LOCAL_LIBRARIES = $(XAWLIB) $(XTOOLLIB) $(XMULIB) $(XLIB)
  245. -         SYSTEM_LIBRARIES =
  246. -         DEPEXTENSIONLIB =
  247. -         EXTENSIONLIB =
  248.   
  249. !     TKOBJS = xaw_ui.o xaw_stubs.o
  250.   
  251. !     TKSRCS = xaw_ui.c xaw_stubs.c
  252.   
  253. !     TKHEADERS = xaw_ui.h
  254.   
  255. !     TKBITMAPS = 
  256.   
  257. !     TKDOCS =
  258.   
  259. !     TKDEFINES = -DXAW 
  260.   
  261. !     TKINCLUDES = 
  262.   
  263. !     TARGET = spider
  264. ! #endif
  265.   
  266.   BASE_OBJS = gfx.o spider.o events.o windows.o movelog.o util.o version.o
  267. ! OBJS =    $(BASE_OBJS) $(TKOBJS)
  268.   
  269.   BASE_SRCS = gfx.c spider.c events.c windows.c movelog.c util.c version.c
  270.   SRCS =  $(BASE_SRCS) $(TKSRCS)
  271. --- 140,198 ----
  272.    
  273.           TKINCLUDES = 
  274.   
  275. !         TARGET = spider
  276. ! #endif /* CompileXlibOnly */
  277.   
  278. !         XVIEW_DIST = xv_ui.c xv_stubs.c xv_ui.h spider.info
  279.   #if CompileXView
  280.   # if RoundCards
  281. !         DEPLIBS = $(DEPXVIEWLIB) $(DEPOLGXLIB) $(DEPXMULIB) $(DEPXLIB)
  282. !         LOCAL_LIBRARIES = $(XVIEWLIB) $(OLGXLIB) $(XMULIB) $(XLIB)
  283.   # else
  284. !         DEPLIBS = $(DEPXVIEWLIB) $(DEPOLGXLIB) $(DEPXLIB)
  285. !         LOCAL_LIBRARIES = $(XVIEWLIB) $(OLGXLIB) $(XLIB)
  286.   # endif
  287. !         TKOBJS = xv_ui.o xv_stubs.o 
  288.   
  289. !         TKSRCS = xv_ui.c xv_stubs.c
  290.   
  291. !         TKHEADERS = xv_ui.h
  292.   
  293. !         TKBITMAPS = 
  294.   
  295. !         TKDOCS = spider.info 
  296.   
  297. !         TKDEFINES = -DXVIEW
  298.   
  299. !         TKINCLUDES = -I$(XVTOP)/include 
  300.   
  301. !         TARGET = spider
  302. ! #endif /* CompileXView */
  303.   
  304. !         XAW_DIST = xaw_ui.c xaw_stubs.c xaw_ui.h
  305.   #if CompileXAW
  306.           DEPLIBS = $(DEPXAWLIB) $(DEPXTOOLLIB) $(DEPXMULIB) $(DEPXLIB)
  307.           LOCAL_LIBRARIES = $(XAWLIB) $(XTOOLLIB) $(XMULIB) $(XLIB)
  308.   
  309. !         TKOBJS = xaw_ui.o xaw_stubs.o
  310.   
  311. !         TKSRCS = xaw_ui.c xaw_stubs.c
  312.   
  313. !         TKHEADERS = xaw_ui.h
  314.   
  315. !         TKBITMAPS = 
  316.   
  317. !         TKDOCS =
  318.   
  319. !         TKDEFINES = -DXAW 
  320.   
  321. !         TKINCLUDES = 
  322.   
  323. !         TARGET = spider
  324. ! #endif /* CompileXAW */
  325.   
  326.   BASE_OBJS = gfx.o spider.o events.o windows.o movelog.o util.o version.o
  327. ! OBJS = $(BASE_OBJS) $(TKOBJS)
  328.   
  329.   BASE_SRCS = gfx.c spider.c events.c windows.c movelog.c util.c version.c
  330.   SRCS =  $(BASE_SRCS) $(TKSRCS)
  331. ***************
  332. *** 177,197 ****
  333.   BASE_BITMAPS = rank.bm suit.bm face.bm spider.bm cards.bm.aa cards.bm.ab
  334.   BITMAPS = $(BASE_BITMAPS) $(TKBITMAPS)
  335.   
  336. ! BASE_DOCS = doc.intro doc.rules doc.controls doc.examples doc.summary spider.man
  337. ! DOCS =    $(BASE_DOCS) $(TKDOCS)
  338.   
  339. ! MISC = Imakefile Makefile.sunpro README
  340.   
  341.   ALL_SRCS = $(MISC) $(BASE_SRCS) $(BASE_HEADERS) $(BASE_BITMAPS) $(BASE_DOCS) \
  342. !     $(XVIEW_DIST) $(XAW_DIST) $(KL_DIST)
  343.   
  344.   #if SmallCards
  345. ! DEFINES = $(TKDEFINES) -DSMALL_CARDS -DHELPDIR="\"$(HELPDIR)\""
  346.   #else 
  347.   # if RoundCards
  348. ! DEFINES = $(TKDEFINES) -DROUND_CARDS -DHELPDIR="\"$(HELPDIR)\""
  349.   # else
  350. ! DEFINES = $(TKDEFINES) -DHELPDIR="\"$(HELPDIR)\""
  351.   # endif
  352.   #endif
  353.   
  354. --- 203,237 ----
  355.   BASE_BITMAPS = rank.bm suit.bm face.bm spider.bm cards.bm.aa cards.bm.ab
  356.   BITMAPS = $(BASE_BITMAPS) $(TKBITMAPS)
  357.   
  358. ! BASE_DOCS = doc.intro doc.rules doc.controls doc.examples doc.misc doc.summary 
  359. ! DOCS =        $(BASE_DOCS) $(TKDOCS)
  360.   
  361. ! MISC = Imakefile Makefile.sunpro README spider.man
  362.   
  363.   ALL_SRCS = $(MISC) $(BASE_SRCS) $(BASE_HEADERS) $(BASE_BITMAPS) $(BASE_DOCS) \
  364. !         $(XVIEW_DIST) $(XAW_DIST) $(KL_DIST)
  365.   
  366. + #if NeedsLocalUsleep
  367. + # if NeedsLocalStrdup
  368. + UTILDEFS = -DLOCAL_USLEEP -DLOCAL_STRDUP
  369. + # else
  370. + UTILDEFS = -DLOCAL_USLEEP
  371. + # endif
  372. + #else
  373. + # if NeedsLocalStrdup
  374. + UTILDEFS = -DLOCAL_STRDUP
  375. + # else
  376. + UTILDEFS = 
  377. + # endif
  378. + #endif
  379.   #if SmallCards
  380. ! DEFINES = $(TKDEFINES) -DSMALL_CARDS -DHELPDIR="\"$(HELPDIR)\"" $(UTILDEFS)
  381.   #else 
  382.   # if RoundCards
  383. ! DEFINES = $(TKDEFINES) -DROUND_CARDS -DHELPDIR="\"$(HELPDIR)\"" $(UTILDEFS)
  384.   # else
  385. ! DEFINES = $(TKDEFINES) -DHELPDIR="\"$(HELPDIR)\"" $(UTILDEFS)
  386.   # endif
  387.   #endif
  388.   
  389. ***************
  390. *** 199,208 ****
  391. --- 239,254 ----
  392.   
  393.   CPPFLAGS = 
  394.   
  395. + all:: $(TARGET)
  396.   #if SmallCards
  397.   all:: 
  398.       -@if [ ! -f cards.bm ]; then cat cards.bm.aa cards.bm.ab > cards.bm; fi
  399.   #endif
  400. + #if OverrideDefs
  401. + MakeDirectories(install,$(BINDIR))
  402. + MakeDirectories(install.man, $(MANDIR))
  403. + #endif
  404.   
  405.   ComplexProgramTarget($(TARGET))
  406.   
  407. ***************
  408. *** 209,225 ****
  409.   #ifdef SparcArchitecture
  410.   /**/# SunOS4.0.3 sparc optimizer slimes this file
  411.   util.o:    util.c
  412. !     $(CC) $(CPPFLAGS) $(DEFINES) $(INCLUDES) -c $<
  413.   #endif
  414.   
  415. ! version.o::    version.c
  416. !     $(CC) -c -DDATE="\"`date`\"" $<
  417.   
  418. ! MakeDirectories(install,$(HELPDIR))
  419. ! InstallMultipleDest(install,$(DOCS),$(HELPDIR))
  420.       
  421.   clean::
  422. !     $(RM) spider.shar spider.a spider.a.a?
  423.   
  424.   shar::
  425.       $(SHAR) $(ALL_SRCS) > spider.shar
  426. --- 255,312 ----
  427.   #ifdef SparcArchitecture
  428.   /**/# SunOS4.0.3 sparc optimizer slimes this file
  429.   util.o:    util.c
  430. !     $(CC) $(CPPFLAGS) $(DEFINES) $(INCLUDES) -c util.c
  431.   #endif
  432.   
  433. ! version.o:    version.c
  434. !     $(CC) -DDATE="\"`date`\"" -c version.c 
  435.   
  436. ! MakeDirectories(install.doc,$(HELPDIR))
  437. ! InstallMultipleDest(install.doc,$(DOCS),$(HELPDIR))
  438.       
  439. + World::  
  440. +     @echo ""
  441. +     @echo "Begin build of the $(TARGET) application for the"
  442. + #if CompileXView
  443. +     @echo "XView toolkit version."
  444. + #else
  445. + # if CompileXlibOnly
  446. +     @echo "Xlib only, no toolkit version."
  447. + # else
  448. + #  if CompileXAW
  449. +     @echo "Athena Widget toolkit version."
  450. + #  endif
  451. + # endif
  452. + #endif
  453. + #if SmallCards
  454. +     @echo "Using cards with small bitmaps for a low resolution display."
  455. + #else 
  456. + # if RoundCards
  457. +     @echo "Using cards with normal bitmaps and optional rounded edges."
  458. + # else
  459. +     @echo "Using cards with normal bitmaps."
  460. + # endif
  461. + #endif
  462. +     @echo ""
  463. +     @date
  464. +     @echo ""
  465. +     $(MAKE) $(MFLAGS) clean
  466. +     $(MAKE) $(MFLAGS) depend
  467. +     $(MAKE) $(MFLAGS)
  468. +     @echo ""
  469. +     @date
  470. +     @echo ""
  471. +     @echo "Begin installation... "
  472. +     $(MAKE) $(MFLAGS) -k install
  473. +     $(MAKE) $(MFLAGS) -k install.doc
  474. +     $(MAKE) $(MFLAGS) -k install.man
  475. +     @echo ""
  476. +     @date
  477. +     @echo ""
  478. +     @echo "Installation complete...now type 'make clean'"
  479.   clean::
  480. !     $(RM) spider.shar spider.a spider.a.a?a cards.bm
  481.   
  482.   shar::
  483.       $(SHAR) $(ALL_SRCS) > spider.shar
  484. *** /tmp/spider/./doc.rules    Mon Apr 30 19:55:45 1990
  485. --- ./doc.rules    Mon Apr 30 11:18:13 1990
  486. ***************
  487. *** 1,5 ****
  488. --- 1,37 ----
  489.                 II.   R U L E S   F O R   S P I D E R
  490.   
  491. + The object of the game is to build a stack of cards in the same suit from
  492. + King to Ace and remove the stack from the table to the stacks above.  When
  493. + all eight stacks have been built and removed, you have won the game.  A
  494. + more challenging version of this is to leave all eight stacks on the table
  495. + until done instead of removing those that are complete to the stacks above.
  496. + One may move the next lower card onto a card of the same or different suit;
  497. + however, one may only move contiguous cards of the same suit as a group.  For
  498. + example, one may move the 5 of spades into either a 6 of spades or a 6 of
  499. + hearts. Moving the 5 of spades onto the 6 spades is a better move since now
  500. + the 5-6 of spades group may be moved as a unit where the 5 of spades, 6 of
  501. + hearts group may not.  Also, moving the 4 of spades onto the 6 of spades is
  502. + not a legal move.  A King may only be moved into a space (or removed to the
  503. + stacks above when the sequence K-Ace is complete) since there are no
  504. + higher cards than a King.
  505. + For general strategy, one wants to try to create a "space" since this is
  506. + the most flexible way to move cards around.  A space is where all cards in
  507. + the table have been removed.  Note:  before dealing the next round, all
  508. + spaces have to have at least one card in them.
  509. + Also, when moving the cards, it is generally to your advantage to move
  510. + the highest cards first and the lowest cards last doing the obvious moves
  511. + first.  For example, move a 5 of spades onto a 6 of spades, then Queen of
  512. + hearts onto a King clubs before you move the 7 of clubs onto the 8 of hearts.
  513. + Then you may choose to move 5-6 of spades group onto the 7 of clubs.  The
  514. + strategy is to combine the cards into same suit groups that may be moved as
  515. + a unit.  Once the group 5-6 of spades has been created, it may be broken
  516. + up by using the middle mouse button on the lower card.
  517. + More details about the game are below...
  518.   THE INITIAL TABLEAU.  Shuffle together two decks of cards (104 cards in all)
  519.   and deal ten cards face down in a row.  Deal three more rows face down on the
  520.   first.  Next deal one card face down on each of four piles (traditionally the
  521. *** /tmp/spider/./util.c    Mon Apr 30 19:55:49 1990
  522. --- ./util.c    Mon Apr 30 19:01:04 1990
  523. ***************
  524. *** 6,25 ****
  525.    *
  526.    *    See copyright.h for the terms of the copyright.
  527.    *
  528. !  *    @(#)util.c    2.1    90/04/27
  529.    *
  530.    */
  531.   
  532.   /*
  533. -  * Sun libc has strdup() and usleep(), but other OS's need
  534. -  * them
  535. -  */
  536. - #ifndef sun
  537. - #define    LOCAL_USLEEP
  538. - #define    LOCAL_STRDUP
  539. - #endif
  540. - /*
  541.    * misc utility funcs
  542.    */
  543.   
  544. --- 6,16 ----
  545.    *
  546.    *    See copyright.h for the terms of the copyright.
  547.    *
  548. !  *    @(#)util.c    2.3    90/04/30
  549.    *
  550.    */
  551.   
  552.   /*
  553.    * misc utility funcs
  554.    */
  555.   
  556. ***************
  557. *** 52,58 ****
  558.   static Atom    target = (Atom) 0;
  559.   Window    win;
  560.   unsigned char    *prop;
  561. ! XSelectionEvent    ev;
  562.   Atom    type;
  563.   int    format;
  564.   unsigned long    elmts, left;
  565. --- 43,50 ----
  566.   static Atom    target = (Atom) 0;
  567.   Window    win;
  568.   unsigned char    *prop;
  569. ! XEvent    ev;
  570. ! XSelectionEvent    *sev;
  571.   Atom    type;
  572.   int    format;
  573.   unsigned long    elmts, left;
  574. ***************
  575. *** 101,107 ****
  576.       XSync(dpy, 0);
  577.   
  578.       /* wait for notification */
  579. !     while(XCheckTypedEvent(dpy, SelectionNotify, &ev) == False)    {
  580.           XSync(dpy, 0);
  581.           if (retry++ == NUM_RETRIES)
  582.               return (NULL);
  583. --- 93,99 ----
  584.       XSync(dpy, 0);
  585.   
  586.       /* wait for notification */
  587. !     while(XCheckTypedEvent(dpy, SelectionNotify, &ev) == False) {
  588.           XSync(dpy, 0);
  589.           if (retry++ == NUM_RETRIES)
  590.               return (NULL);
  591. ***************
  592. *** 108,117 ****
  593.           sleep(1);
  594.       }
  595.   
  596. !     if (ev.property == None)    /* nothing to get */
  597.           return (NULL);
  598.   
  599. !     (void)XGetWindowProperty(dpy, table, ev.property, 0L, 1024L,
  600.           False, AnyPropertyType, &type, &format,
  601.           &elmts, &left, &prop);
  602.       
  603. --- 100,112 ----
  604.           sleep(1);
  605.       }
  606.   
  607. !     sev = (XSelectionEvent *)&ev;
  608. !     if (sev->property == None)    /* nothing to get */
  609.           return (NULL);
  610.   
  611. !     (void)XGetWindowProperty(dpy, table, sev->property,
  612. !         0L, 1024L,
  613.           False, AnyPropertyType, &type, &format,
  614.           &elmts, &left, &prop);
  615.       
  616. ***************
  617. *** 217,223 ****
  618.   #ifdef    LOCAL_USLEEP
  619.   
  620.   #include <signal.h>
  621. ! #include <time.h>
  622.   
  623.   usleep(value)
  624.   long value;
  625. --- 212,218 ----
  626.   #ifdef    LOCAL_USLEEP
  627.   
  628.   #include <signal.h>
  629. ! #include <X11/Xos.h>        /* for (sys/)time.h */
  630.   
  631.   usleep(value)
  632.   long value;
  633. *** /tmp/spider/./version.c    Mon Apr 30 19:55:51 1990
  634. --- ./version.c    Mon Apr 30 19:27:04 1990
  635. ***************
  636. *** 12,15 ****
  637.   
  638.   char    *version = "1.00";
  639.   char    *build_date = DATE;
  640. --- 12,15 ----
  641.   
  642.   char    *version = "1.00";
  643.   char    *build_date = DATE;
  644. ! char    *patch_level = "1";
  645. *** /tmp/spider/./xaw_ui.h    Mon Apr 30 19:55:52 1990
  646. --- ./xaw_ui.h    Mon Apr 30 19:01:37 1990
  647. ***************
  648. *** 6,12 ****
  649.    *
  650.    *    See copyright.h for the terms of the copyright.
  651.    *
  652. !  *    @(#)xaw_ui.h    2.1    90/04/25
  653.    *
  654.    */
  655.   
  656. --- 6,12 ----
  657.    *
  658.    *    See copyright.h for the terms of the copyright.
  659.    *
  660. !  *    @(#)xaw_ui.h    2.2    90/04/30
  661.    *
  662.    */
  663.   
  664. ***************
  665. *** 29,35 ****
  666.   
  667.   #include    <X11/Xaw/Cardinals.h>
  668.   
  669. ! extern    XtCallbackProc    score_handler(),
  670.               backup_handler(),
  671.               expand_handler(),
  672.               locate_handler(),
  673. --- 29,35 ----
  674.   
  675.   #include    <X11/Xaw/Cardinals.h>
  676.   
  677. ! extern    void        score_handler(),
  678.               backup_handler(),
  679.               expand_handler(),
  680.               locate_handler(),
  681. ***************
  682. *** 39,45 ****
  683.               newgame_handler(),
  684.               confirm_callback();
  685.   
  686. ! extern    XtEventHandler    xaw_redraw_table(),
  687.               xaw_button_press(),
  688.               xaw_button_release(),
  689.               xaw_resize(),
  690. --- 39,45 ----
  691.               newgame_handler(),
  692.               confirm_callback();
  693.   
  694. ! extern    void        xaw_redraw_table(),
  695.               xaw_button_press(),
  696.               xaw_button_release(),
  697.               xaw_resize(),
  698. *** /tmp/spider/./defs.h    Mon Apr 30 19:55:54 1990
  699. --- ./defs.h    Mon Apr 30 18:58:04 1990
  700. ***************
  701. *** 6,12 ****
  702.    *
  703.    *    See copyright.h for the terms of the copyright.
  704.    *
  705. !  *    @(#)defs.h    2.1    90/04/25
  706.    *
  707.    */
  708.   
  709. --- 6,12 ----
  710.    *
  711.    *    See copyright.h for the terms of the copyright.
  712.    *
  713. !  *    @(#)defs.h    2.2    90/04/30
  714.    *
  715.    */
  716.   
  717. ***************
  718. *** 15,20 ****
  719. --- 15,21 ----
  720.    */
  721.   #include    <X11/Xlib.h>
  722.   #include    <X11/Xutil.h>
  723. + #include    <X11/Xos.h>
  724.   #include    <stdio.h>
  725.   #include    "assert.h"
  726.   #include    "copyright.h"
  727. *** /tmp/spider/./events.c    Mon Apr 30 19:55:55 1990
  728. --- ./events.c    Mon Apr 30 19:00:35 1990
  729. ***************
  730. *** 6,12 ****
  731.    *
  732.    *    See copyright.h for the terms of the copyright.
  733.    *
  734. !  *    @(#)events.c    2.1    90/04/25
  735.    *
  736.    */
  737.   
  738. --- 6,12 ----
  739.    *
  740.    *    See copyright.h for the terms of the copyright.
  741.    *
  742. !  *    @(#)events.c    2.3    90/04/30
  743.    *
  744.    */
  745.   
  746. ***************
  747. *** 218,223 ****
  748. --- 218,229 ----
  749.           current_card = coords_to_card(xev->x, xev->y);
  750.           if (current_card == CARDNULL)
  751.               return;
  752. +         /* ignore facedown cards */
  753. +         if (current_card->type != Faceup)    {
  754. +             current_card = CARDNULL;
  755. +             current_list = coords_to_list(xev->x, xev->y);
  756. +             return;
  757. +         }
  758.   #ifdef DEBUG
  759.           if (xev->state & ShiftMask)    {
  760.               current_list = coords_to_list(xev->x, xev->y);
  761. ***************
  762. *** 358,366 ****
  763.   char    buf[512];
  764.   char    *fname;
  765.   int    num;
  766. ! #ifdef XVIEW
  767. ! extern char *get_selection();
  768. ! #endif /* XVIEW */
  769.   
  770.       num = XLookupString(xev, str, 32, NULL, NULL);
  771.       if (num == 0)
  772. --- 364,374 ----
  773.   char    buf[512];
  774.   char    *fname;
  775.   int    num;
  776. ! #ifdef KITLESS
  777. ! #define    get_name_field(x)    get_selection(x)
  778. ! #else
  779. ! extern char    *get_name_field();
  780. ! #endif /* KITLESS */
  781.   
  782.       num = XLookupString(xev, str, 32, NULL, NULL);
  783.       if (num == 0)
  784. ***************
  785. *** 368,374 ****
  786.       switch (str[0])    {
  787.       case    'f':        /* find card */
  788.       case    'F':
  789. !         if ((fname = get_selection()) == NULL)    {
  790.               show_message("Selection is unusable or unobtainable.");
  791.           } else    {
  792.               locate(fname);
  793. --- 376,382 ----
  794.       switch (str[0])    {
  795.       case    'f':        /* find card */
  796.       case    'F':
  797. !         if ((fname = get_name_field()) == NULL)    {
  798.               show_message("Selection is unusable or unobtainable.");
  799.           } else    {
  800.               locate(fname);
  801. ***************
  802. *** 376,382 ****
  803.           break;
  804.       case    'l':
  805.       case    'L':
  806. !         if ((fname = get_selection()) == NULL)    {
  807.               show_message("Selection is unusable or unobtainable.");
  808.           } else    {
  809.               read_file_or_selection(fname);
  810. --- 384,390 ----
  811.           break;
  812.       case    'l':
  813.       case    'L':
  814. !         if ((fname = get_name_field()) == NULL)    {
  815.               show_message("Selection is unusable or unobtainable.");
  816.           } else    {
  817.               read_file_or_selection(fname);
  818. ***************
  819. *** 387,393 ****
  820.       case    'w':
  821.       case    'W':
  822.           /* write to selection */
  823. !         if ((fname = get_selection()) == NULL)    {
  824.               show_message("Selection is unusable or unobtainable.");
  825.           } else    {
  826.               write_file(fname, write_confirmer);
  827. --- 395,401 ----
  828.       case    'w':
  829.       case    'W':
  830.           /* write to selection */
  831. !         if ((fname = get_name_field()) == NULL)    {
  832.               show_message("Selection is unusable or unobtainable.");
  833.           } else    {
  834.               write_file(fname, write_confirmer);
  835. *** /tmp/spider/./xaw_stubs.c    Mon Apr 30 19:55:56 1990
  836. --- ./xaw_stubs.c    Mon Apr 30 19:01:36 1990
  837. ***************
  838. *** 6,12 ****
  839.    *
  840.    *    See copyright.h for the terms of the copyright.
  841.    *
  842. !  *    @(#)xaw_stubs.c    2.2    90/04/27
  843.    *
  844.    */
  845.   
  846. --- 6,12 ----
  847.    *
  848.    *    See copyright.h for the terms of the copyright.
  849.    *
  850. !  *    @(#)xaw_stubs.c    2.4    90/04/30
  851.    *
  852.    */
  853.   
  854. ***************
  855. *** 26,32 ****
  856.   Bool        confirm;
  857.   
  858.   /* ARGSUSED */
  859. ! XtCallbackProc
  860.   score_handler(w, call_data, client_data)
  861.   Widget    w;
  862.   XtPointer    call_data, client_data;
  863. --- 26,32 ----
  864.   Bool        confirm;
  865.   
  866.   /* ARGSUSED */
  867. ! void
  868.   score_handler(w, call_data, client_data)
  869.   Widget    w;
  870.   XtPointer    call_data, client_data;
  871. ***************
  872. *** 39,45 ****
  873.   }
  874.   
  875.   /* ARGSUSED */
  876. ! XtCallbackProc
  877.   newgame_handler(w, call_data, client_data)
  878.   Widget    w;
  879.   XtPointer    call_data, client_data;
  880. --- 39,45 ----
  881.   }
  882.   
  883.   /* ARGSUSED */
  884. ! void
  885.   newgame_handler(w, call_data, client_data)
  886.   Widget    w;
  887.   XtPointer    call_data, client_data;
  888. ***************
  889. *** 51,57 ****
  890.   }
  891.   
  892.   /* ARGSUSED */
  893. ! XtCallbackProc
  894.   backup_handler(w, call_data, client_data)
  895.   Widget    w;
  896.   XtPointer    call_data, client_data;
  897. --- 51,57 ----
  898.   }
  899.   
  900.   /* ARGSUSED */
  901. ! void
  902.   backup_handler(w, call_data, client_data)
  903.   Widget    w;
  904.   XtPointer    call_data, client_data;
  905. ***************
  906. *** 72,78 ****
  907.   }
  908.   
  909.   /* ARGSUSED */
  910. ! XtCallbackProc
  911.   expand_handler(w, call_data, client_data)
  912.   Widget    w;
  913.   XtPointer    call_data, client_data;
  914. --- 72,78 ----
  915.   }
  916.   
  917.   /* ARGSUSED */
  918. ! void
  919.   expand_handler(w, call_data, client_data)
  920.   Widget    w;
  921.   XtPointer    call_data, client_data;
  922. ***************
  923. *** 81,87 ****
  924.   }
  925.   
  926.   /* ARGSUSED */
  927. ! XtCallbackProc
  928.   help_handler(w, call_data, client_data)
  929.   Widget    w;
  930.   XtPointer    call_data, client_data;
  931. --- 81,87 ----
  932.   }
  933.   
  934.   /* ARGSUSED */
  935. ! void
  936.   help_handler(w, call_data, client_data)
  937.   Widget    w;
  938.   XtPointer    call_data, client_data;
  939. ***************
  940. *** 93,99 ****
  941.   }
  942.   
  943.   /* ARGSUSED */
  944. ! XtCallbackProc
  945.   change_help(w, call_data, client_data)
  946.   Widget    w;
  947.   XtPointer    call_data, client_data;
  948. --- 93,99 ----
  949.   }
  950.   
  951.   /* ARGSUSED */
  952. ! void
  953.   change_help(w, call_data, client_data)
  954.   Widget    w;
  955.   XtPointer    call_data, client_data;
  956. ***************
  957. *** 124,130 ****
  958.   }
  959.   
  960.   /* ARGSUSED */
  961. ! XtCallbackProc
  962.   locate_handler(w, call_data, client_data)
  963.   Widget    w;
  964.   XtPointer    call_data, client_data;
  965. --- 124,130 ----
  966.   }
  967.   
  968.   /* ARGSUSED */
  969. ! void
  970.   locate_handler(w, call_data, client_data)
  971.   Widget    w;
  972.   XtPointer    call_data, client_data;
  973. ***************
  974. *** 144,150 ****
  975.   }
  976.   
  977.   /* ARGSUSED */
  978. ! XtCallbackProc
  979.   file_handler(w, call_data, client_data)
  980.   Widget    w;
  981.   XtPointer    call_data, client_data;
  982. --- 144,150 ----
  983.   }
  984.   
  985.   /* ARGSUSED */
  986. ! void
  987.   file_handler(w, call_data, client_data)
  988.   Widget    w;
  989.   XtPointer    call_data, client_data;
  990. ***************
  991. *** 185,191 ****
  992.   /* event handlers */
  993.   
  994.   /* ARGSUSED */
  995. ! XtEventHandler
  996.   xaw_redraw_table(w, data, xev, ctd)
  997.   Widget    w;
  998.   XtPointer    data;
  999. --- 185,191 ----
  1000.   /* event handlers */
  1001.   
  1002.   /* ARGSUSED */
  1003. ! void
  1004.   xaw_redraw_table(w, data, xev, ctd)
  1005.   Widget    w;
  1006.   XtPointer    data;
  1007. ***************
  1008. *** 199,205 ****
  1009.   }
  1010.   
  1011.   /* ARGSUSED */
  1012. ! XtEventHandler
  1013.   xaw_button_press(w, data, xev, ctd)
  1014.   Widget    w;
  1015.   XtPointer    data;
  1016. --- 199,205 ----
  1017.   }
  1018.   
  1019.   /* ARGSUSED */
  1020. ! void
  1021.   xaw_button_press(w, data, xev, ctd)
  1022.   Widget    w;
  1023.   XtPointer    data;
  1024. ***************
  1025. *** 213,219 ****
  1026.   }
  1027.   
  1028.   /* ARGSUSED */
  1029. ! XtEventHandler
  1030.   xaw_button_release(w, data, xev, ctd)
  1031.   Widget    w;
  1032.   XtPointer    data;
  1033. --- 213,219 ----
  1034.   }
  1035.   
  1036.   /* ARGSUSED */
  1037. ! void
  1038.   xaw_button_release(w, data, xev, ctd)
  1039.   Widget    w;
  1040.   XtPointer    data;
  1041. ***************
  1042. *** 227,233 ****
  1043.   }
  1044.   
  1045.   /* ARGSUSED */
  1046. ! XtEventHandler
  1047.   xaw_resize(w, data, xev, ctd)
  1048.   Widget    w;
  1049.   XtPointer    data;
  1050. --- 227,233 ----
  1051.   }
  1052.   
  1053.   /* ARGSUSED */
  1054. ! void
  1055.   xaw_resize(w, data, xev, ctd)
  1056.   Widget    w;
  1057.   XtPointer    data;
  1058. ***************
  1059. *** 251,257 ****
  1060.   }
  1061.   
  1062.   /* ARGSUSED */
  1063. ! XtEventHandler
  1064.   xaw_key_press(w, data, xev, ctd)
  1065.   Widget    w;
  1066.   XtPointer    data;
  1067. --- 251,257 ----
  1068.   }
  1069.   
  1070.   /* ARGSUSED */
  1071. ! void
  1072.   xaw_key_press(w, data, xev, ctd)
  1073.   Widget    w;
  1074.   XtPointer    data;
  1075. ***************
  1076. *** 293,299 ****
  1077.       return True;
  1078.   }
  1079.   
  1080. ! XtCallbackProc
  1081.   confirm_callback(w, call_data, client_data)
  1082.   Widget    w;
  1083.   XtPointer    call_data, client_data;
  1084. --- 293,300 ----
  1085.       return True;
  1086.   }
  1087.   
  1088. ! /* ARGSUSED */
  1089. ! void
  1090.   confirm_callback(w, call_data, client_data)
  1091.   Widget    w;
  1092.   XtPointer    call_data, client_data;
  1093. ***************
  1094. *** 356,359 ****
  1095. --- 357,380 ----
  1096.           return(do_confirmer("Really discard current game?"));
  1097.       else
  1098.           return True;
  1099. + }
  1100. + char    *
  1101. + get_name_field()
  1102. + {
  1103. + Arg    args[1];
  1104. + char    *fname;
  1105. +     XtSetArg(args[0], XtNstring, &fname);
  1106. +     XtGetValues(file, args, ONE);
  1107. +     /* nothing in the field doesn't return a NIL pointer */
  1108. +     if (strlen(fname))    {
  1109. +         /* remove the leading whitespace */
  1110. +         fname = remove_newlines(fname);
  1111. +         locate(fname);
  1112. +         return fname;
  1113. +     } else    {
  1114. +         return (get_selection());
  1115. +     }
  1116.   }
  1117. *** /tmp/spider/./README    Mon Apr 30 19:55:43 1990
  1118. --- ./README    Mon Apr 30 20:04:34 1990
  1119. ***************
  1120. *** 1,3 ****
  1121. --- 1,9 ----
  1122. + Patch level 1:
  1123. +     fixed bug, some problems with Imakefile.
  1124. +     fixed bug, can no longer see turned-over cards with middle mouse.
  1125. +     fixed bug, "f" will use the text field then selection for information.
  1126. +     added, patch_level variable to version.c file.
  1127.   Spider is a challenging double decked solitaire game.  Unlike most
  1128.   soilitaire games, skill is just as important as luck.
  1129.   
  1130. *** /tmp/spider/./xaw_ui.c    Mon Apr 30 19:55:59 1990
  1131. --- ./xaw_ui.c    Mon Apr 30 19:01:36 1990
  1132. ***************
  1133. *** 6,12 ****
  1134.    *
  1135.    *    See copyright.h for the terms of the copyright.
  1136.    *
  1137. !  *    @(#)xaw_ui.c    2.2    90/04/27
  1138.    *
  1139.    */
  1140.   
  1141. --- 6,12 ----
  1142.    *
  1143.    *    See copyright.h for the terms of the copyright.
  1144.    *
  1145. !  *    @(#)xaw_ui.c    2.3    90/04/30
  1146.    *
  1147.    */
  1148.   
  1149. ***************
  1150. *** 40,46 ****
  1151.   extern int    deltamod;
  1152.   extern char    *helpDir;
  1153.   
  1154. ! extern char    helpfiles[5][256];
  1155.   
  1156.   struct    _resources    {
  1157.       Bool    confirm;
  1158. --- 40,46 ----
  1159.   extern int    deltamod;
  1160.   extern char    *helpDir;
  1161.   
  1162. ! extern char    helpfiles[6][256];
  1163.   
  1164.   struct    _resources    {
  1165.       Bool    confirm;
  1166. ***************
  1167. *** 142,148 ****
  1168.   int    argc;
  1169.   char    **argv;
  1170.   {
  1171. - XWMHints    xwmh;
  1172.   char    *save_file = NULL;
  1173.   int    i, nargs;
  1174.   
  1175. --- 142,147 ----
  1176. *** /tmp/spider/./xv_ui.c    Mon Apr 30 19:56:00 1990
  1177. --- ./xv_ui.c    Mon Apr 30 19:33:40 1990
  1178. ***************
  1179. *** 16,28 ****
  1180.    */
  1181.   
  1182.   #include <stdio.h>
  1183. - #include <sys/param.h>
  1184. - #include <sys/types.h>
  1185.   #include <xview/xview.h>
  1186.   #include <xview/canvas.h>
  1187.   #include <xview/icon_load.h>
  1188.   #include <xview/panel.h>
  1189. - #include <xview/scrollbar.h>
  1190.   #include <xview/svrimage.h>
  1191.   #include <xview/text.h>
  1192.   #include <xview/defaults.h>
  1193. --- 16,25 ----
  1194. *** /tmp/spider/./xv_stubs.c    Mon Apr 30 19:56:02 1990
  1195. --- ./xv_stubs.c    Mon Apr 30 19:50:20 1990
  1196. ***************
  1197. *** 10,18 ****
  1198.    *      @(#)xv_stubs.c    2.2    90/04/27
  1199.    */
  1200.   #include <stdio.h>
  1201. ! #include <sys/param.h>
  1202. ! #include <sys/types.h>
  1203. ! #include <sys/file.h>
  1204.   #include <xview/xview.h>
  1205.   #include <xview/panel.h>
  1206.   #include <xview/textsw.h>
  1207. --- 10,16 ----
  1208.    *      @(#)xv_stubs.c    2.2    90/04/27
  1209.    */
  1210.   #include <stdio.h>
  1211. ! #include <X11/Xlib.h>
  1212.   #include <xview/xview.h>
  1213.   #include <xview/panel.h>
  1214.   #include <xview/textsw.h>
  1215. ***************
  1216. *** 19,25 ****
  1217.   #include <xview/xv_xrect.h>
  1218.   #include <xview/seln.h>
  1219.   #include <xview/defaults.h>
  1220. - #include <X11/Xlib.h>
  1221.   #include "xv_ui.h"
  1222.   
  1223.   static char    helpfiles[HELP_MAX+1][32];
  1224. --- 17,22 ----
  1225. ***************
  1226. *** 551,556 ****
  1227. --- 548,565 ----
  1228.       xv_set(ip->subwindow1->textsw1,
  1229.           TEXTSW_FILE, NULL,
  1230.           0);
  1231. + }
  1232. + char *
  1233. + get_name_field()
  1234. + {
  1235. +     char *val;
  1236. +     char *get_selection();
  1237. +     if ((val = (char *)xv_get(spider_window1->textfield1, PANEL_VALUE)) == NULL || strlen(val) == 0) {
  1238. +         val = get_selection();
  1239. +     }
  1240. +     return (val);
  1241.   }
  1242.   
  1243.   char *
  1244. *** /tmp/spider/./gfx.c    Mon Apr 30 19:56:03 1990
  1245. --- ./gfx.c    Mon Apr 30 19:00:48 1990
  1246. ***************
  1247. *** 6,12 ****
  1248.    *
  1249.    *    See copyright.h for the terms of the copyright.
  1250.    *
  1251. !  *    @(#)gfx.c    2.1    90/04/25
  1252.    *
  1253.    */
  1254.   
  1255. --- 6,12 ----
  1256.    *
  1257.    *    See copyright.h for the terms of the copyright.
  1258.    *
  1259. !  *    @(#)gfx.c    2.2    90/04/30
  1260.    *
  1261.    */
  1262.   
  1263. ***************
  1264. *** 176,181 ****
  1265. --- 176,185 ----
  1266.   
  1267.       back_delta_x = (CARD_WIDTH - logo_width)/2;
  1268.       back_delta_y = (CARD_HEIGHT - logo_height)/2;
  1269. +     /* XXX -- workaround for X11R4 bug */
  1270. +     back_delta_x -= CARD_WIDTH;
  1271. +     back_delta_y -= CARD_HEIGHT;
  1272.   
  1273.       if (is_color)    {
  1274.           cmap = DefaultColormap(dpy, screen);
  1275. *** /tmp/spider/./spider.info    Mon Apr 30 19:55:56 1990
  1276. --- ./spider.info    Mon Apr 30 20:06:15 1990
  1277. ***************
  1278. *** 35,42 ****
  1279.   
  1280.   The file also includes a human-readable text representation of the current tableau, similar to those that appear in the Help "Examples".
  1281.   
  1282. - When using the accellerator "W" or "w", the filename is taken from the contents of the current primary selection instead of the Name textfield.
  1283.   [File: Resume from File] reads a file created by the [File: Save in File] command.  The name of the file is taken from the Name item.  
  1284.   
  1285.   It can also read various partial files; in particular, if all but the first line of the file has been deleted, it will restore the most recent position and, if possible, the original deck (in case you want to Start Over), but it will not be able to Back Up over the moves.
  1286. --- 35,40 ----
  1287. SHAR_EOF
  1288. fi
  1289. exit 0
  1290. #    End of shell archive
  1291.  
  1292. dan
  1293. ----------------------------------------------------
  1294. O'Reilly && Associates   argv@sun.com / argv@ora.com
  1295. Opinions expressed reflect those of the author only.
  1296.